import os
import time

from selenium.webdriver.common.by import By

"""
配置文件总是项目中必不可少的部分！
将固定不变的信息集中在固定的文件中

"""


class ConfigManager(object):
    """
    在这个文件中我们可以设置自己的各个目录，也可以查看自己当前的目录。

    遵循了约定：不变的常量名全部大写，函数名小写。看起来整体美观。
    """
    # 项目目录
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # 页面元素目录
    # print(BASE_DIR)
    # 雪球的xls数据路径
    XUEQIUXLSPATH = os.path.join(BASE_DIR + '\\testdata', 'xueqiu_data.xls')
    # 元素路径
    ELEMENT_PATH = os.path.join(BASE_DIR, 'page_element')
    # 测试报告路径
    REPORT_FILE = os.path.join(BASE_DIR + '\\reports', 'reports.html')
    LOG_FILE = os.path.join(BASE_DIR + '\\log', 'pytest.log')
    BOSS_CSV_FILE_PATH = os.path.join(BASE_DIR + '\\testdata', 'boss_data.csv')
    # REPORT_FILE = os.path.join(BASE_DIR, 'allure-report.zip')
    # mysql数据路径
    MYSQLDATA = os.path.join(BASE_DIR + '\\testdata', 'mysqldata.yaml')
    #  雪球数据路径
    XUEQIU_YAML = os.path.join(BASE_DIR + '\\testcases\\xueqiu', 'test_xueqiu_hq.yaml')
    #  日志文件夹路径
    LOG_FILE_PATH = os.path.join(BASE_DIR + '\\log')
    #  yaml格式的数据文件路径
    YAML_DATA_FILE = os.path.join(BASE_DIR + '\\testdata', 'mydata.yaml')
    CSV_FILE_NAME_PATH = os.path.join(BASE_DIR+'\\testdata', 'csv_file_name.yaml')
    #  当前日期
    CURRENT_DATE = time.strftime('%Y-%m-%d', time.localtime(time.time()))
    # 当天日期命名的log文件夹
    TODAY_FILE_PATH = os.path.join(BASE_DIR+'\\log', CURRENT_DATE)
    #  当前时间
    CURRENT_DATE_TIME = time.strftime('%H-%M-%S', time.localtime(time.time()))
    # 元素定位的类型
    LOCATE_MODE = {
        'css': By.CSS_SELECTOR,
        'xpath': By.XPATH,
        'name': By.NAME,
        'id': By.ID,
        'class': By.CLASS_NAME,
        'text': By.LINK_TEXT

    }

    # 收件人
    ADDRESSER = [
        '39560610@qq.com',  # 这里就不去数据驱动了，不想写了
    ]
    # 测试网址
    DYURL = 'https://www.douyin.com/?is_new_connect=0&is_new_user=0'
    LUAURL = 'https://wiki.luatos.com/luaGuide/introduction.html'
    BAIDU_URL = "https://www.baidu.com"
    FILE_UPLOAD = "https://letcode.in/file"

    # def log_file(self):
    #     #日志目录
    #     log_dir=os.path.join(self.BASE_DIR,'logs')
    #     if not  os.path.exists(log_dir):
    #         os.makedirs(log_dir)
    #     return os.path.join(log_dir,"{}.log".format(dt_strftime()))
    @property
    def ini_files(self):
        # 配置文件
        ini_file = os.path.join(self.BASE_DIR, 'config', 'config.ini')
        if not os.path.exists(ini_file):
            raise FileNotFoundError('配置文件%s不存在！' % ini_file)
        return ini_file


cm = ConfigManager()

# if __name__ == '__main__':
#     print(cm.BASE_DIR)
